﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ucntemaxp.DB;
using System.Linq.Expressions;

namespace ucntemaxp.Ctr
{
    class CtrMedvirkende
    {
        private DB.Dm74_1Entities DBCon;

        public CtrMedvirkende()
        {
            DBCon = new DB.Dm74_1Entities();
        }

        public void addMedvirkende(string navn, string titel)
        {
            try
            {
                DBCon.Medvirkendes.AddObject(new Medvirkende()
                {
                    Navn = navn,
                    Titel = titel
                });
                DBCon.SaveChanges();
            }
            catch (Exception)
            {
                throw;
            }
        }

        public void removeMedvirkendes(int medvirkendeid)
        {
            DBCon.Medvirkendes.DeleteObject(new Medvirkende()
            {
                Medvirkendeid = medvirkendeid
            });
        }

        public void updateMedvirkende(int medvirkendeid, string navn, string titel)
        {
            try
            {
                Medvirkende m = DBCon.Medvirkendes.First(i => i.Medvirkendeid == medvirkendeid);
                m.Navn = navn;
                m.Titel = titel;
                DBCon.SaveChanges();
            }
            catch (Exception ex)
            {

                throw ex;
            }
        }

        public void Update(Action<Medvirkende> updateStatement, Expression<Func<Medvirkende, bool>> where)
        {
            // get your object context & objectset, cast to IQueryable<T>
            var table = (IQueryable<Medvirkende>)DBCon.CreateObjectSet<Medvirkende>();

            // filter with the Expression
            var items = table.Where(where);

            // perform the Action on each item
            foreach (var item in items)
            {
                updateStatement(item);
            }

            // save changes.
        }
    }
}
